#region License Revision: 0 Last Revised: 6/18/2008 11:00 AM
/******************************************************************************
Copyright (c) Microsoft Corporation.  All rights reserved.


This file is licensed under the Microsoft Public License (Ms-PL). A copy of the Ms-PL should accompany this file. 
If it does not, you can obtain a copy from: 

http://www.microsoft.com/resources/sharedsource/licensingbasics/publiclicense.mspx
******************************************************************************/
#endregion // License
using System;
using System.Windows.Browser;
using System.Diagnostics;
using ScriptInterop;

namespace VIEWS // Virtual Earth Wrapper
{

/// <summary> VECustomIconSpecification contains details of a custom icon.</summary>   
public class VECustomIconSpecification : JSObject
{  
	/// <summary>String holding JavaScript class name</summary>
	private static string thisClass = "VECustomIconSpecification";
	
	/// <summary>Get the JavaScript class name</summary>
	/// <returns type="String">The class name used in JavaScript </returns>		
	public override string ClassName
	{
		get { return thisClass; }
	}

	/// <summary>Construct a C# wrapper from a ScriptObject</summary>
	/// <param name="so">A ScriptObjet from JScript.</param>
	public VECustomIconSpecification(ScriptObject so) : base(so) { }

	public VECustomIconSpecification()
	{ScriptObject = CreateClass();}

	/// <summary name="BackColor" type="VEColor">A VEColor object representing the icon's background and transparency.</summary>
	public VEColor BackColor
	{
		get { var so = GetProperty<ScriptObject>("BackColor"); return new VEColor(so); }
		set { SetProperty("BackColor", (ScriptObject)value); }
	}
	/// <summary name="CustomHTML" type="String">Custom HTML representing the pin's appearance. 2D only.</summary>	
	public string CustomHtml
	{
		get { return GetProperty<string>("CustomHTML"); }
		set { SetProperty("CustomHTML", value); }
	}
	/// <summary name="ForeColor " type="VEColor">A VEColor object representing the icon's text color and transparency.</summary>
	public VEColor ForeColor
	{
		get { var so = GetProperty<ScriptObject>("ForeColor"); return new VEColor(so); }
		set { SetProperty("ForeColor", (ScriptObject)value); }
	}
	/// <summary name="Image" type="String">A String representing the URL of an image file.</summary>  
	public string Image
	{
		get { return GetProperty<string>("Image"); }
		set { SetProperty("Image", value); }
	}
	/// <summary name="ImageOffset" type="VEPixel">A VEPixel object representing the image's offset from the icon's anchor.</summary>
	public VEPixel ImageOffset
	{
		get { var so = GetProperty<ScriptObject>("ImageOffset"); return new VEPixel(so); }
		set { SetProperty("ImageOffset", (ScriptObject)value); }
	}
	/// <summary name="TextBold" type="Boolean">Specifies whether the text for the icon should be bold.</summary>
	public bool TextBold
	{
		get { return GetProperty<bool>("TextBold"); }
		set { SetProperty("TextBold", value); }
	}
	/// <summary name="TextContent" type="String">The actual text to display for the icon.</summary>
	public string TextContent
	{
		get { return GetProperty<string>("TextContent"); }
		set { SetProperty("TextContent", value); }
	}
	/// <summary name="TextFont" type="String">A String containing the name of the font to use for the icon text.</summary>
	public string TextFont
	{
		get { return GetProperty<string>("TextFont"); }
		set { SetProperty("TextFont", value); }
	}
	/// <summary name="TextItalics" type="Boolean">Specifies whether the text for the icon should be italic.</summary>
	public bool TextItalics
	{
		get { return GetProperty<bool>("TextItalics"); }
		set { SetProperty("TextItalics", value); }
	}
	/// <summary name="TextOffset" type="VEPixel">A VEPixel object representing the amount to offset text from the top left corner.</summary>
	public VEPixel TextOffset
	{
		get { var so = GetProperty<ScriptObject>("ForeColor"); return new VEPixel(so); }
		set { SetProperty("ForeColor", (ScriptObject)value); }
	}
	/// <summary name="TextSize " type="Number">Specifies the size at which to display text, in points.</summary>
	public double TextSize
	{
		get { return GetProperty<double>("TextSize"); }
		set { SetProperty("TextSize", value); }
	}
	/// <summary name="TextUnderline" type="Boolean">Specifies whether the text for the icon should be underlined.</summary>
	public bool TextUnderline
	{
		get { return GetProperty<bool>("TextUnderline"); }
		set { SetProperty("TextUnderline", value); }
	}
}

}
